The invention generally relates to providing web-based services to an application program module.
Oftentimes, software developers want to update a software application program module after the application has already been shipped to the client. For example, developers may want to add a new feature to the application or fine tune an existing feature. One way of editing or adding a feature is to send out a new release of the software application to customers either by shipping a new disc or by having users download the new feature. Although these approaches work fairly well for editing or adding features, each new edited or added feature may require another update. Periodically updating an application with new or edited features is expensive and burdensome for both the software manufacturer and the user. Also, with regard to downloading new or edited features, there is a discoverability issue because many users will not know that a new feature exists and, thus, will not know to download the new feature. There is a need for a method and system for providing features of a software application that is easily discoverable, inexpensive and capable of being easily updated.
Users of software applications desire more advanced features than users did in the past. Software manufacturers cannot compete in the marketplace by simply providing the same features as they once did. New features must be added and updated at a rapid pace. For example, some users of word processors may find helpful a language translation engine. Even though third parties may provide translation services via the Internet, these services are not easily discoverable. Moreover, even if a user discovers these language translation services, the translation services may require the user to exit their word processor and send their word processing document over the Internet to the translation service. This process can be time-consuming and burdensome.
One solution is to include the advanced features, such as the translation software, with the application program module. However, some users may not use the advanced features. It is difficult to predict which features may be needed in the future and which features will be popular with users. Moreover, application software developers may not be skilled in developing these advanced features. A partnership between an application program manufacturer and a skilled feature developer could prove beneficial. Thus, there is a need for a method and system for providing advanced features in a software application program module that facilitates partnerships between software manufacturers. Moreover, these features should be highly discoverable, editable, and seamless to the user.
The present invention meets the above-described needs with a method and system for providing web-based services to an application program module.
Generally described, in one embodiment, the invention allows a web page script to manipulate a document running on an application program module by using the application""s object model. The web page script may use the application""s object model to implement features or services on the document running on the application program module. The invention may be launched when the user selects a tool entitled xe2x80x9ceServicesxe2x80x9d or xe2x80x9cTools on the Webxe2x80x9d while editing a document in an application program module, such as the xe2x80x9cPUBLISHERxe2x80x9d desktop publishing program module. The selection of the xe2x80x9ceServicesxe2x80x9d tool causes the application program module to host a services web page in a dialog box. The web page may display a number of features or services that may be performed on the user""s document. For example, there may be a translation feature to translate the user""s document into another language. Of course, there are numerous other features that may be listed on the web page. When the user selects one of the features from the web page, a web page script performs the selected function on the user""s document. The web page""s script uses the object model of the application program module to perform the selected function on the document in accordance with OLE Automation.
More specifically, in one embodiment, the invention comprises an application program module creating a dialog box and launching an HTML rendering engine in the dialog box. The HTML rendering engine opens a services web page in the dialog box. The services web page comprises at least one link for a service or feature that the user may select. After selecting one of the links, the web page script associated with the selected link requests access to the object model of the application program module. The application program module sends a pointer to its object model to the web page script. The web page script is then able to use the application""s object model to perform the selected service or feature on the user""s document (running in the application program module).
That the invention improves over the drawbacks described in the Background section and accomplishes the advantages described above will become apparent from the following detailed description of the exemplary embodiments and the appended drawings and claims.